package com.medusa.aps.business.modules.demand.service;

import com.medusa.aps.business.modules.demand.model.input.PlanningOperationParam;
import com.medusa.aps.business.modules.demand.mp.entity.OrderInformation;
import com.medusa.aps.business.modules.demand.mp.entity.PlanOperationProgress;

import java.util.List;
import java.util.Set;

/**
 * @author: xh.yu
 * @createTime: 2023/10/09 13:20
 */
public interface MrpPlanningOperationService {
    /**
     * 计划运算
     *
     * @param id 进度id
     * @param planningOperationParam 计划运算参数
     * @throws Exception 异常
     */
    void mrpPlaningOperation(Long id, PlanningOperationParam planningOperationParam) throws Exception;


    /**
     * 更新排程进度
     *
     * @param id id
     * @param failureReason 失败原因
     */
    void updatePlanOperationProgress(Long id, String failureReason);

    /**
     * 查询排程进度
     *
     * @param id id
     * @return PlanOperationProgress
     */
    PlanOperationProgress planOperationProgress(long id);

    /**
     * 检查采购计划
     * @param orderNumbers 订单号
     * @return 订单号
     */
    String checkPurchasePlan(Set<String> orderNumbers);

    /**
     * 记录排程日志
     * @param desc 操作内容
     */
//    void adjustSchedulingDesc(String desc);
}
